package cn.tedu.innerclass;
/*本类用来测试成员内部类被private修饰
* 成员内部被private修饰后，无法被外界直接创建对象使用
* 所有可以创建外部类对象，通过外部类对象间接访问内部私有资源*/
public class TestInner2 {
    public static void main(String[] args) {
        /*如何使用内部资源呢？*/
        //4.可以创建Inter2的的对象进行资源访问
        // Outer2.Inter2 oi2 = new Outer2().new Inter2();
        // oi2.eat();
        /*如果Inter被private修饰，无法在外部创建对象，怎么办？*/
        //7.我们可以通过外部类对象，间接访问私有内部类的资源
        new Outer2().getInter2Eat();
    }
}
//1.创建外部类
class Outer2{
    //6.提供外部类公共的方法，在方法内部创建私有内部类的对象，并调用内部类的方法
    public void getInter2Eat(){
        Inter2 in = new Inter2();//外部类中创建内部类对象
        in.eat();
    }
    //2.创建成员内部类
    /*成员内部类的位置：类里方法外*/
    //5.将成员内部类私有化
    private class Inter2{
        //3.创建成员内部类的普通方法
        public void eat(){
            System.out.println("干饭了");
        }
    }
}